home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The CICA Windows Explosion!
/
The CICA Windows Explosion! - Disc 2.iso
/
programr
/
dpmigcc5.zip
/
RSX
/
SOURCE
/
GNUAOUT.H
< prev
next >
Wrap
C/C++ Source or Header
|
1994-12-12
|
2KB
|
86 lines
/* Copyright Rainer Schnitker 92,93 */
#ifndef _DPMI_TYPES
#define _DPMI_TYPES
#include "DPMITYPE.H"
#endif
#define N_MAGIC(exec) ((exec).a_info & 0xffff)
#define OMAGIC 0x107
#define NMAGIC 0x108
#define ZMAGIC 0x10B
/* load different sizes */
#define _N_HDROFF(x) _n_hdroff
#define N_TXTADDR(x) n_txtaddr
#define SEGMENT_SIZE segment_size
#define N_DATADDR(x) (SEGMENT_SIZE + ((N_TXTADDR(x)+(x).a_text-1) & ~(SEGMENT_SIZE-1)))
#define N_BSSADDR(x) (N_DATADDR(x) + (x).a_data)
#define N_TXTOFF(x) (_N_HDROFF((x)) + sizeof (struct exec))
#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
#define N_DRELOFF(x) (N_TRELOFF(x) + (x).a_trsize)
#define N_SYMOFF(x) (N_DRELOFF(x) + (x).a_drsize)
#define N_STROFF(x) (N_SYMOFF(x) + (x).a_syms)
typedef struct exec {
DWORD a_info; /* Use macros N_MAGIC, etc for access */
DWORD a_text; /* length of text, in bytes */
DWORD a_data; /* length of data, in bytes */
DWORD a_bss; /* length of uninitialized data area for file, in bytes */
DWORD a_syms; /* length of symbol table data in file, in bytes */
DWORD a_entry; /* start address */
DWORD a_trsize; /* length of relocation info for text, in bytes */
DWORD a_drsize; /* length of relocation info for data, in bytes */
} GNUOUT ;
typedef struct {
WORD magic;
WORD vstamp;
DWORD tsize; /* text size in bytes, padded to FW bdry*/
DWORD dsize; /* initialized data " " */
DWORD bsize; /* uninitialized data " " */
DWORD entry; /* entry pt. */
DWORD text_start; /* base of text used for this file */
DWORD data_start; /* base of data used for this file */
} AOUTHDR;
typedef struct filehdr {
WORD f_magic;
WORD f_nscns;
DWORD f_timdat;
DWORD f_symptr;
DWORD f_nsyms;
WORD f_opthdr;
WORD f_flags;
} FILEHDR;
typedef struct scnhdr {
char s_name[8];
DWORD s_paddr;
DWORD s_vaddr;
DWORD s_size;
DWORD s_scnptr;
DWORD s_relptr;
DWORD s_lnnoptr;
WORD s_nreloc;
WORD s_nlnno;
DWORD s_flags;
} SCNHDR;
struct exe_hdr {
WORD signatur;
WORD low;
WORD high;
WORD reloc;
WORD hdr_para;
} ;
struct emx_hdr2 {
char sig[18];
char next_hdr[4];
char option[64];
};